5장. 신경망 기초
AI 엔지니어링 선수지식 — 5장. 대상: 고등학생·학부 1년차.
5. 신경망 기초
Transformer(LLM 의 뼈대)는 작은 신경망 블록을 수십 층 쌓은 것입니다. 그 블록 하나를 이해하면 EP4·EP5 가 훨씬 쉬워집니다.
5.1 퍼셉트론 (Perceptron)
입력에 가중치를 곱해 더하고(내적!) 문턱을 넘으면 신호를 내보내는 인공 뉴런입니다.
비유 — 동아리 가입 결정. "친구 있나(×3)? 회비 싼가(×2)? 시간 맞나(×2)?" 각 항목에 중요도(가중치)를 곱해 합산하고, 일정 점수를 넘으면 가입하는 것이 퍼셉트론입니다.
직접 해보기 — 입력
[1, 0, 1], 가중치[3, 2, 2]의 가중합은 1×3 + 0×2 + 1×2 = 5(= 내적!)입니다. 문턱이 4 면 5 > 4 라서 신호 1(활성화)이 나갑니다.
x = np.array([1, 0, 1]); w = np.array([3, 2, 2])
out = x @ w - 4 # 가중합 + 편향
print(1 if out > 0 else 0) # 1 (활성화)
실무. 퍼셉트론 수천 개를 층층이 쌓으면 심층 신경망이 됩니다. 모든 딥러닝의 기본 단위죠.
LLM 연결. Transformer 의 FFN(피드포워드) 층이 곧 퍼셉트론 묶음입니다. "가중합 = 내적" 이라 섹션 1 과 직결됩니다.
더 깊이 — 3Blue1Brown 신경망편
5.2 활성화함수 (ReLU·Sigmoid·Softmax)
가중합 결과를 비선형으로 바꿔 신경망이 복잡한 패턴을 배우게 하는 함수입니다.
비유 — 수도꼭지·확률 변환기. ReLU 는 "음수면 잠그고(0) 양수면 그대로 흘려보냄"(가장 흔함), Sigmoid 는 어떤 값이든 0~1 사이로, Softmax 는 여러 점수를 합이 1인 확률로 바꿉니다(다음 단어 고르기).
직접 해보기 — ReLU([-2, 3, -1, 5]) 는 음수를 0 으로 바꿔
[0, 3, 0, 5]. Softmax([1, 2, 3]) 은 큰 값일수록 큰 확률을 줘 합이 1인[0.09, 0.24, 0.67]이 됩니다.
def softmax(x):
e = np.exp(x - x.max()); return e / e.sum()
print(softmax(np.array([1.0, 2.0, 3.0])).round(2)) # [0.09 0.24 0.67]
실무. ReLU 는 은닉층 표준, Softmax 는 마지막 출력(분류·다음 단어)에 쓰여 거의 모든 모델에 등장합니다.
LLM 연결. LLM 의 마지막 단계가 Softmax 로, 전체 어휘 점수를 다음 단어 확률로 변환합니다(섹션 3 과 직결).
더 깊이 — MIT 6.S191 Lecture 1
5.3 손실함수·역전파
예측이 얼마나 틀렸는가가 손실, 그 오차를 거꾸로 전달해 가중치를 고치는 것이 역전파입니다.
비유 — 양궁 보정. 화살이 과녁에서 얼마나 빗나갔나(손실) 보고 팔·자세를 조금씩 교정(역전파)하면, 반복할수록 명중합니다.
직접 해보기 — 흐름은 예측 → 정답과 비교해 손실(cross-entropy, 3.4) → 미분(그래디언트, 2.2) → 체인룰(2.3)로 모든 층에 오차 전달(역전파) → 경사하강(2.4)으로 수정, 입니다. PyTorch 는
loss.backward()한 줄로 전부 자동입니다.
import torch.nn as nn
model = nn.Linear(3, 1)
x = torch.tensor([[1.0, 0.0, 1.0]]); y = torch.tensor([[1.0]])
loss = nn.MSELoss()(model(x), y)
loss.backward() # 역전파 자동 (체인룰)
실무. "loss 가 안 떨어진다" 가 학습 디버깅 1순위이며, 역전파는 autograd 가 자동 처리합니다.
LLM 연결. LLM 학습 1 step 은 예측 → cross-entropy 손실 → 역전파 → 가중치 수정으로, 섹션 2·3 이 여기서 합쳐집니다.
더 깊이 — 3Blue1Brown 역전파편
5.4 정규화 (Dropout·LayerNorm)
모델이 암기만 하고 응용 못 하는 현상(오버피팅)을 막는 장치들입니다.
비유 — 기출만 외운 학생. 기출은 100점인데 새 문제는 0점이 오버피팅입니다. Dropout 은 공부할 때 일부러 일부 뉴런을 꺼서 한쪽 의존을 막고, LayerNorm 은 값들의 평균·분산을 정돈합니다(3.3).
직접 해보기 — LayerNorm 은
[10, 20, 30]에서 평균 20 을 빼고 표준편차로 나눠[-1.22, 0, 1.22](평균0·분산1)로 정돈합니다.
import torch.nn as nn
print(nn.LayerNorm(3)(torch.tensor([[10.0, 20.0, 30.0]])))
실무. 오버피팅은 모든 모델의 적이라 Dropout·LayerNorm·조기종료가 표준 방어입니다.
LLM 연결. Transformer 의 모든 블록에 LayerNorm 이 들어갑니다(EP4 구조도에 반드시 등장). 섹션 3 의 평균·분산이 여기 쓰입니다.
더 깊이 — MIT 6.S191
5.5 정리
| 개념 | LLM 에서의 역할 |
|---|---|
| 퍼셉트론 | FFN 층 (가중합=내적) |
| ReLU | 은닉층 비선형 |
| Softmax | 다음 단어 확률 출력 |
| 손실·역전파 | 학습 (섹션 2+3 결합) |
| LayerNorm | 모든 Transformer 블록 |
한 문장으로, Transformer 는 퍼셉트론(가중합) + Softmax(확률) + LayerNorm(정돈) 블록을 수십 층 쌓고 역전파로 학습한 것입니다.
참고 자료 — 3Blue1Brown Neural Networks · MIT 6.S191
클릭하거나 Space를 눌러 뒤집기